/*
* ECARX Technology Limited is the owner of the copyright and the trade secret of this software.
* Without permission, no one has the right to obtain, disclose or use this software in any way.
*/

package ecarx.xsf.notificationcenter.interfaces;

import ecarx.xsf.notificationcenter.notification.INotificationBar;

/**
 * FileName: IMascotCardAPI.java <br>
 * Description : 形象提示API <br>
 * Create Time: 2021/8/19 14:34 <br>
 * Update Time: 2021/8/19 14:34 <br>
 *
 * @since 1.0.0
 */
public interface IMascotCardAPI {

    /**
     * * 添加形象消息监听.
     * <p> 形象数据通过监听回掉的方式夸进程传输到客户端，客户端初始化 API 成功后必须添加消息监听器才可以接收到系统消息 <br>
     *
     * @param listener 监听器 {@link INotificationListener}
     * @see #removeMascotCardListener(INotificationListener)
     * @since 1.0.0
     */
    void addMascotCardListener(INotificationListener listener);

    /**
     * * 移除消息监听器.
     * <p> 页面退出无需再监听系统通知消息或重新添加监听器时<br>
     * @param listener {@link INotificationListener} 监听器
     * @see #addMascotCardListener(INotificationListener)
     * @since 1.0.0
     */
     void removeMascotCardListener(INotificationListener listener);


    /**
     * 通知形象消息的处理状态.
     * <p> 当消息被处理或客户端主动让 Launcher Controller 系统在有消息的情况下下发下一条消息 <br>
     *
     * @param iNotificationBar {@link INotificationBar} 当前正常显示的消息
     * @param status           {@link ecarx.xsf.notificationcenter.common.Constants}
     * @since 1.0.0
     */
     void notifyCardHandleStatus(INotificationBar iNotificationBar, int status);
}
